package ycl.base.service;

import org.springframework.web.multipart.MultipartFile;
import ycl.base.entity.UserFiles;
import ycl.base.req.UserFilesReq;
import ycl.base.res.UserFilesRes;
import ycl.base.utils.UploadFileData;
import ycl.common.base.service.BaseService;
import ycl.common.models.req.IdNameReq;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * 用户文件管理 逻辑层
 *
 * @author ycl
 * @date 2022/7/6 0006 11:45:49
 */
public interface UserFilesService
		extends BaseService<UserFiles, UserFilesReq, UserFilesRes> {


	/**
	 * 上传文件
	 *
	 * @param userId     用户id
	 * @param uploadData 上传时的数据
	 */
	void upload(Long userId, UploadFileData uploadData, MultipartFile file);

	/**
	 * 保存用户上传信息, 并从公共地址复制文件到用户的文件夹
	 *
	 * @param userId 用户id
	 * @param data   上传参数数据
	 */
	void saveAndCopyToUserFold(Long userId, UploadFileData data);

	/**
	 * 重命名
	 *
	 * @param request 登录信息
	 * @param req     文件id和新文件名
	 */
	void rename(HttpServletRequest request, IdNameReq req);

	/**
	 * 根据id集合删除文件
	 *
	 * @param request 登录信息
	 * @param ids     文件的id
	 */
	void deleteBatchIds(HttpServletRequest request, List<Long> ids);
}
